[アップデート]Terraform CloudにProjectの機能が追加されました
アップデート概要
Projectを使用することで、Workspaceをグループ化することができます。
Terraform Cloud Adds ‘Projects’ to Organize Workspaces at Scale
公式Blog内にある、図を見てもらうとイメージがしやすいと思います。
このアップデートで嬉しい点として、権限管理が楽になることがあげられます。
これまではWorkspace個別に権限を付与する必要がありましたが、Projectに権限を与えることで配下のWorkspaceへの権限が付与されます。
また、セルフサービスを行いやすくもなったと思います。
Workspaceの作成はOwner権限が必要です。Owner権限を全員に付与するのはリスクがあります。
そのため、チームでTerraform運用しているが、Workspace作成のみOwnerに依頼する運用を行なっている場合があるかと思います。
ProjectごとにAdmin権限を与えることで、該当Project内でのみWorkspaceを作ることができます。 チームにWorkspace作成の権限を与えることでセルフサービスも捗りそうです
Policy setsやVariable setsはProjectに割り当てられる?
現時点では不可でした。(2023/1/18)
Policy setsやVariable setsなどは、「すべてのWorkspaceに割り当てる」 or 「特定のWorkspaceに割り当てる」といった感じで適用範囲を設定できます。
この適用範囲にProjectも追加されているかなと思って確認してみましたが、現時点ではProjectは追加されていませんでした。
Variable setsの適用範囲にProjectを選択できるようになりました。(2023/4/28更新)
Policy setsに関しては、Projectは現時点では未対応です。
やってみる
Projectを作成して、既存Workspaceを作成したProjectに移動してみます。
Projectの作成
コンソールを見てみると、以前はworkspaces
のみだった部分がProjects & workspaces
に変わっています。
以前作成したWorkspaceは、Default Project
に所属しています。
画面右上のNew
からProjectを作成します。
今回は、検証環境なのでプロジェクト名はsato-project
としています。
Projectの権限設定
TeamにProjectの権限を付与します。
選択できる権限は、現状ではReadとAdminの2つです。
- Read: Project内Workspaceの読み込み権限等
- Admin: Project内のWorkSpace読み書き、当該Projectの編集等
これで権限の付与が完了しました。
作成したProjectに既存のWorkspaceを移動
Workspaceの右横にある・・・
からProjectの変更ができます。
Project移動に伴って、権限が変更される旨の警告が出ています。
Team内のユーザーに切り替えて、権限の確認
Team内のユーザーに切り替えて、該当Projceしか操作できないことを確認します。
Team内のユーザーには、Projectに対してAdmin権限を付与しています。
Default Project
が見えないことを確認できました。
Project内にWorkspaceを作れました。
おわりに
Terraform CloudにProjectレイヤーが追加されたアップデートを紹介しました。
多数のWorkspaceを運用している方にとっては、激アツのアップデートかと思います。
以上、AWS事業本部の佐藤(@chari7311)でした。